//
//  JAGAdBaseAdPlatform.h
//  JAGatherAdDemo
//
//  Created by Yc on 2022/4/26.
//

#import <Foundation/Foundation.h>
#import <UIKit/UIKit.h>

NS_ASSUME_NONNULL_BEGIN

@class JAGAdSupplier;

typedef void (^BidFinish)(NSInteger bidPrice, NSError * _Nullable error);

@interface JAGAdBaseAdPlatform : NSObject

/// 注册SDK 自定义适配器使用
/// @param info 注册参数信息
+ (void)registSdkWithInfo:(NSDictionary *)info;

/// 构造方法
/// @param supplier 数据源
/// @param adspot 适配者
- (instancetype)initWithSupplier:(JAGAdSupplier *)supplier adspot:(id)adspot;

///加载广告
- (void)loadAd;

///显示广告
- (void)showAd;

/// 返回广告的eCPM，单位：分(成功返回一个大于等于0的值，-1表示无权限或后台出现异常) 请于请求广告成功后获取
- (NSInteger)eCPM;

/// 广告是否有效
- (BOOL)isValid;

/// 适配平台配置size
- (CGSize)calculationBannerSzie:(NSString *)szie;

/// 客户端竞价请求
/// @param bidFloor 底价
/// @param completion 竞价结果回调
- (void)loadBidRequestFloor:(NSInteger)bidFloor
                completion:(void(^)(NSInteger bidPrice, NSError *error))completion;

/// 服务端竞价参数
- (NSDictionary *)packS2SBidRequestParams;

/// 竞胜之后调用, 需要在展示广告之前调用
/// @param price 传入竞价队列第二高价（单位：分），只有一家胜出则 上报的价格为当前广告对象的底价
- (void)sendWinNotificationWithPrice:(NSInteger)price;

/// 竞败之后调用
/// @param winPrice 竟胜价格
/// @param adnId 渠道id
- (void)sendLossNotificationWithWinPrice:(NSInteger)winPrice adnId:(NSInteger)adnId;

/// 信息流请求成功的物料 （信息流子类对象需重写实现）
- (NSArray *)reportFeeds;

/// 销毁适配者
- (void)deallocAdapter;

@end

NS_ASSUME_NONNULL_END
